package dfs;

/**
 * 二、 二叉树的深搜
 * 5. 二叉搜索树中的第 k 小的元素
 * 2024-11-16
 */
public class demo10 {
    int count;
    int ret;
    public int kthSmallest(TreeNode root, int k) {
        count = k;
        dfs(root);
        return ret;
    }

    void dfs(TreeNode root) {
        //count == 0 是剪枝
        if(root == null || count == 0) return;
        dfs(root.left);
        count--;
        if(count == 0)
            ret = root.val;

        //剪枝
        if(count == 0) return;

        dfs(root.right);
    }
}
